import sys

import requests
from bs4 import BeautifulSoup
import os


def download(url, page):
    while True:
        html = requests.get(url).text
        soup = BeautifulSoup(html, 'html.parser')
        list = soup.select('div.ball_box01 ul li')
        # 开奖号码由无序标签（ul li）定义，并且在一个class为“ball_box01”的<div>标签中
        ball = []
        for li in list:
            ball.append(li.string)
        write_to_excel(page, ball)
        print(f'第{page}期开奖结果已经录入完成')
        break


def write_to_excel(page, ball):

    f = open("双色球开奖结果测试.csv", 'a', encoding='utf_8_sig')
    f.write(f'第{page}期,{ball[0]},{ball[1]},{ball[2]},{ball[3]},{ball[4]},{ball[5]} \n')
    f.close()


def turn_page():
    '''
    requests.get()函数返回一个response对象，传递参数url是目标网页地址
    requests.get()函数后面加上“.text”，以便将response对象转换成字符串
    '''
    url = "http://kaijiang.500.com/ssq.shtml"
    headers = {'User-Agent':
                   'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0'}
    html = requests.get(url, headers=headers).text

    '''
    BeautifulSoup()函数有两个参数，第一个参数是要解析的HTML/XML代码，第二个参数是解析器
    在这里我们以前面requests.get()返回的html作为第一个参数，'html.parser'是Python内置的解析器（标准库）
    开奖号码的页面链接在一个class为“iSelectList listOverFlow”的<div>标签中
    '''
    soup = BeautifulSoup(html, 'html.parser')
    pagelist = soup.select("div.iSelectList a")

    #  选择所有在class为“iSelectList listOverFlow”的<div>标签中的<a>标签
    #  所有结果链接赋值给列表变量pagelist存储
    count = 0
    for p in pagelist:
        url = p['href']  # 提取链接
        page = p.string  # 提取字符串
        download(url, page)
        count += 1
        if count == 30:
            break




def main():
    if os.path.exists('双色球开奖结果测试.csv'):
        os.remove('双色球开奖结果测试.csv')
    turn_page()


if __name__ == '__main__':
    main()
